1. Technical Field
The present invention relates generally to the data processing field and, more particularly, to a synthetic benchmark for a computer program, and to a method and computer program product for creating a synthetic benchmark for a computer program.
2. Description of Related Art
Benchmarks are used by academia and industry to measure computer performance. The benchmarks that are typically used are either programs that have been made available for use as benchmarks by the owner or other supplier of the programs, or are synthetic benchmarks that have been coded by hand to represent particular programs.
Neither approach provides a fully satisfactory source for benchmarks. For one thing, program owners usually do not want their mission critical applications to be made available free of charge for use as benchmarks. Also, real applications are often very complex and are not easy to use, for example, in a laboratory setting or during early design studies. Synthetic benchmarks coded by hand are often not fully satisfactory because the benchmarks frequently fail to accurately represent real programs.
Some prior efforts to create synthetic benchmarks have focused on simply combining existing programs into a single program in an effort to recreate the behavior of a particular program. The techniques used, however, are ad-hoc, difficult to reproduce and yield mixed results. Other prior efforts have attempted to create a synthetic benchmark having parameters such that, by changing the parameters, the behavior of the benchmark can be made to match the behavior of a particular program. This technique, however, is slow and provides no guarantee that the created benchmark will be capable of matching the complex behavior of current programs.
Benchmarks that are currently in use are also difficult to modify in any meaningful way. As a result, the benchmarks are not changed very often and tend to become obsolete.
Therefore, it would be advantageous to have an improved method for creating a synthetic benchmark for a computer program that, when executed, exhibits behavior similar to the program.